package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;

/**
 * 省市辖区数据表实体类
 *
 * @author 自动生成
 * @date 2024-06-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("base_areas")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseArea {

    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    @Schema(name = "id", description = "主键")
    @Excel(name = "主键")
    private Long id;

    /** 父级编号 */
    @Schema(name = "parentId", description = "父级编号")
    @Excel(name = "父级编号")
    private String parentId;

    /** 级别 */
    @Schema(name = "levelType", description = "级别")
    @Excel(name = "级别")
    private String levelType;

    /** 名称 */
    @Schema(name = "name", description = "名称")
    @Excel(name = "名称")
    private String name;

    /** 简写 */
    @Schema(name = "shortName", description = "简写")
    @Excel(name = "简写")
    private String shortName;

    /** 父级路径 */
    @Schema(name = "parentPath", description = "父级路径")
    @Excel(name = "父级路径")
    private String parentPath;

    /** 省级 */
    @Schema(name = "province", description = "省级")
    @Excel(name = "省级")
    private String province;

    /** 市级 */
    @Schema(name = "city", description = "市级")
    @Excel(name = "市级")
    private String city;

    /** 辖区 */
    @Schema(name = "district", description = "辖区")
    @Excel(name = "辖区")
    private String district;

    /** 省简写名称 */
    @Schema(name = "provinceShortName", description = "省简写名称")
    @Excel(name = "省简写名称")
    private String provinceShortName;

    /** 市简写名称 */
    @Schema(name = "cityShortName", description = "市简写名称")
    @Excel(name = "市简写名称")
    private String cityShortName;

    /** 辖区简写名称 */
    @Schema(name = "districtShortName", description = "辖区简写名称")
    @Excel(name = "辖区简写名称")
    private String districtShortName;

    /** 省拼音 */
    @Schema(name = "provincePinyin", description = "省拼音")
    @Excel(name = "省拼音")
    private String provincePinyin;

    /** 市拼音 */
    @Schema(name = "cityPinyin", description = "市拼音")
    @Excel(name = "市拼音")
    private String cityPinyin;

    /** 辖区拼音 */
    @Schema(name = "districtPinyin", description = "辖区拼音")
    @Excel(name = "辖区拼音")
    private String districtPinyin;

    /** 城市编号 */
    @Schema(name = "cityCode", description = "城市编号")
    @Excel(name = "城市编号")
    private String cityCode;

    /** 邮编 */
    @Schema(name = "postcode", description = "邮编")
    @Excel(name = "邮编")
    private String postcode;

    /** 拼音 */
    @Schema(name = "pinyin", description = "拼音")
    @Excel(name = "拼音")
    private String pinyin;

    /** 简拼 */
    @Schema(name = "jianpin", description = "简拼")
    @Excel(name = "简拼")
    private String jianpin;

    /** 首字母 */
    @Schema(name = "firstChar", description = "首字母")
    @Excel(name = "首字母")
    private String firstChar;

    /** 经度 */
    @Schema(name = "lng", description = "经度")
    @Excel(name = "经度")
    private String lng;

    /** 纬度 */
    @Schema(name = "lat", description = "纬度")
    @Excel(name = "纬度")
    private String lat;

    /** 全路径名 */
    @Schema(name = "fullName", description = "全路径名")
    @Excel(name = "全路径名")
    private String fullName;

    /** 备注 */
    @Schema(name = "remark", description = "备注")
    @Excel(name = "备注")
    private String remark;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("parentId", getParentId())
                .append("levelType", getLevelType())
                .append("name", getName())
                .append("shortName", getShortName())
                .append("parentPath", getParentPath())
                .append("province", getProvince())
                .append("city", getCity())
                .append("district", getDistrict())
                .append("provinceShortName", getProvinceShortName())
                .append("cityShortName", getCityShortName())
                .append("districtShortName", getDistrictShortName())
                .append("provincePinyin", getProvincePinyin())
                .append("cityPinyin", getCityPinyin())
                .append("districtPinyin", getDistrictPinyin())
                .append("cityCode", getCityCode())
                .append("postcode", getPostcode())
                .append("pinyin", getPinyin())
                .append("jianpin", getJianpin())
                .append("firstChar", getFirstChar())
                .append("lng", getLng())
                .append("lat", getLat())
                .append("fullName", getFullName())
                .append("remark", getRemark())
                .toString();
    }
}
